package session;

import java.util.List;

import entity.User;

/**
 * Dao bean interfejs za entitet korisnik
 * @author rigo & jung
 *
 */
public interface UserDao extends GenericDao<User, Integer> {
	/**
	 * Funkcija za prijavljivanje korisnika
	 * 
	 * @param email - email adresa korisnika
	 * @param password - korisničko ime
	 * @return vraća odgovarajućeg korisnika ako ne pronadje onda vraća null
	 */
	public User login(String email, String password);
	 
	/** 
	 * Funkcija za logičko brisanje iz baze podataka
	 * 
	 * @param userId - Identifikacioni broj korisnika
	 */
	public void deleteUser(Integer userId);
	
	/**
	 * Funkcija za aktiviranje novoregistrovanih članova
	 * 
	 * @param userId - Identifikaioni broj korisnika
	 */
	public void activateUser(Integer userId);
	
	/**
	 * Funkcija za listanje aktivnih korisnika
	 * 
	 * @return Vraća listu aktivnih korisnika
	 */
	public List<User> getAllActive();
	
	/**
	 * Funkcija za listanje korisnika koji još nisu aktivirani
	 * 
	 * @return Vraća listu korisnika koji još nisu aktivirani
	 */
	public List<User> getPendingUsers();
	

	/**
	 * Funkcija za pregled rang liste strelaca
	 * 
	 * @return vraća listu strelaca po opadajućem redosledu
	 */
	public List<User> getScoreRanking();
	
	/**
	 * Funkcija za proveru postojanja korisnika sa datom e-mail adresom.
	 * 
	 * @param email adresa
	 * @return true ako korisnik postoji sa datom email adresom, u suprotnom false.s
	 */
	public boolean isUserExists(String email);
}
